function a() {
    console.log(1)
    Promise.resolve().then(() => {
        console.log(2);
    })
}
setTimeout(() => {
    console.log(3);
    Promise.resolve().then(a)
}, 0);
Promise.resolve().then(() => {
    console.log(4);
})
console.log(5); // 5,4,3,1,2


// 1.延时队列：用于存放计时器到达后的回调任务，优先级【中】
// 2.交互队列：用于存放用户操作后产生的事件处理任务，优先级【高】
// 3.微队列：用户存放需要最快执行的任务。优先级【最高】